home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_c37.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
56KB
|
2,457 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_c.h"
/*No:MANIFEST_STRING_POOL.c_define*/
T0* r347register(T0* a1){
T0* R=NULL;
T2 _x=0;
r7copy((T7*)(((T0*)ms347_54944)),((T0*)ms347_454));
_x=((T63*)(r70base_class((T70*)((((T171*)a1))->_start_position/*4*/))))->_id/*0*/;
r2append_in(_x,((T0*)ms347_54944));
r7extend((T7*)(((T0*)ms347_54944)),'\137');
_x=r7hash_code((T7*)((((T171*)a1))->_to_string/*8*/));
r2append_in(_x,((T0*)ms347_54944));
while (!(!(r348has((T348*)(oBC347mangling_dictionary),((T0*)ms347_54944))))) {
r7extend((T7*)(((T0*)ms347_54944)),'a');
}
R=r7twin((T7*)(((T0*)ms347_54944)));
r348put((T348*)(oBC347mangling_dictionary),a1,R);
return R;
}
/*No:MANIFEST_STRING_POOL.fz_void*/
/*No:MANIFEST_STRING_POOL.define_se_ms*/
/*No:MANIFEST_STRING_POOL.header*/
/*No:MANIFEST_STRING_POOL.fz_se_msi*/
void r347string_to_c_code(T0* a1,T0* a2){
T2 _i=0;
r7extend(((T7*)a2),'\42');
_i=1;
while (!((_i)>((((T7*)a1))->_count/*4*/))) {
r347character_to_c_code(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/,a2);
_i=(_i)+(1);
}
r7extend(((T7*)a2),'\42');
}
/*No:MANIFEST_STRING_POOL.fz_c_no_args_procedure*/
T0*oBC347mangling_dictionary=NULL;
T0*oBC347body=NULL;
/*No:MANIFEST_STRING_POOL.fz_t7_star*/
/*No:MANIFEST_STRING_POOL.define_manifest_string_mark*/
void r347define_manifest_string_mark_header(T2 a1){
/*[IRF3.4split_c_now*/r25incr_elt_c_count((T25*)(oBC12cpp),(1960)+(1));
/*]*/
r7copy((T7*)(((T0*)ms347_54944)),((T0*)ms13_1776a));
r7extend((T7*)(((T0*)ms347_54944)),'\40');
r7append((T7*)(((T0*)ms347_54944)),((T0*)ms347_53560));
r2append_in(a1,((T0*)ms347_54944));
r7append((T7*)(((T0*)ms347_54944)),((T0*)ms13_4410));
r25put_c_heading((T25*)(oBC12cpp),((T0*)ms347_54944));
}
/*No:MANIFEST_STRING_POOL.fz_12*/
/*No:MANIFEST_STRING_POOL.used_for_inline*/
/*No:MANIFEST_STRING_POOL.fz_14*/
/*No:MANIFEST_STRING_POOL.fz_new*/
/*No:MANIFEST_STRING_POOL.fz_c_void_args*/
/*No:MANIFEST_STRING_POOL.falling_down*/
/*No:MANIFEST_STRING_POOL.nb_ms_per_function*/
/*No:MANIFEST_STRING_POOL.c_call_initialize*/
/*No:MANIFEST_STRING_POOL.us_malloc*/
void r347character_to_c_code(T3 a1,T0* a2){
/*[IF*/
if((a1)==('\n')){
r7extend(((T7*)a2),'\134');
r7extend(((T7*)a2),'n');
}
else if((a1)==('\134')){
r7extend(((T7*)a2),'\134');
r7extend(((T7*)a2),'\134');
}
else if((a1)==('\42')){
r7extend(((T7*)a2),'\134');
r7extend(((T7*)a2),'\42');
}
else if((a1)==('\47')){
r7extend(((T7*)a2),'\134');
r7extend(((T7*)a2),'\47');
}
else if(((((unsigned char)a1))<(32))||((122)<(((unsigned char)a1)))){
r7extend(((T7*)a2),'\134');
r2append_in(r2to_octal(((unsigned char)a1)),a2);
r7extend(((T7*)a2),'\42');
r7extend(((T7*)a2),'\42');
}
else{
r7extend(((T7*)a2),a1);
}
/*FI]*/
}
T0* r347type_string(void){
if(fBC12type_string==0){
fBC12type_string=1;
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make(n,NULL);
oBC12type_string=(T0*)n;
}
}
return oBC12type_string;}
/*No:MANIFEST_STRING_POOL.fz_manifest_string_mark*/
/*No:ADDRESS_OF_POOL.c_define*/
void r349register_for(T0* a1){
T0* _rf=NULL;
_rf=(((T160*)a1))->_run_feature/*12*/;
/*[IF*/
if(!(X326fast_has(oBC349registered,_rf))){
X326add_last(oBC349registered,_rf);
r350add_last((T350*)(oBC349caller_memory),a1);
}
/*FI]*/
}
T0*oBC349caller_memory=NULL;
T0*oBC349registered=NULL;
/*No:E_RETRY.start_position*/
T0* r231add_comment(T231* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T225*n=malloc(sizeof(*n));
*n=M225;
r225make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:E_RETRY.use_current*/
void r231compile_to_c(T231* C){
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
X51c_assertion_flag((C)->_run_feature/*8*/);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms231_756));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms231_10368));
/*]*/
}
T0* r231to_runnable(T231* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
_rf=r22top_rf((T22*)(oBC12small_eiffel));
/*[IF*/
if(((C)->_run_feature/*8*/)==((void*)(NULL))){
C->_run_feature=_rf;
R=(T0*)C;
}
else if(((C)->_run_feature/*8*/)==((void*)(_rf))){
R=(T0*)C;
}
else{
{T231*n=malloc(sizeof(*n));
*n=M231;
/*[IRF3.3make*/((((T231*)(n)))->_start_position)=((C)->_start_position/*4*/);
/*]*/
R=(T0*)n;
}
R=r231to_runnable(((T231*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_RETRY.is_pre_computable*/
/*No:E_RETRY.collect_c_tmp*/
/*No:E_RETRY.run_feature*/
/*No:E_RETRY.end_mark_comment*/
/*No:E_RETRY.make*/
/*No:E_RETRY.afd_check*/
/*No:CECIL_TARGET.static_value*/
void r366mapping_c_target(T366* C,T0* a1){
X54mapping_cast(/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*4*/))->_current_type/*4*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='C';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:CECIL_TARGET.is_static*/
/*No:CECIL_TARGET.can_be_dropped*/
/*No:CECIL_TARGET.is_manifest_string*/
/*No:CECIL_TARGET.start_position*/
/*No:CECIL_TARGET.c_simple*/
/*No:CECIL_TARGET.c_declare_for_old*/
T0* r366add_comment(T366* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r366to_integer(void){
T2 R=0;
r366error(/*(IRF4.1start_position*/NULL/*)*/,((T0*)ms13_45846));
return R;
}
/*No:CECIL_TARGET.use_current*/
/*No:CECIL_TARGET.dca_inline_argument*/
void r366compile_to_c(T366* C){
/*[IF*/
if(X54is_user_expanded(r366result_type(C))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\52';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25print_current((T25*)(oBC12cpp));
}
/*No:CECIL_TARGET.to_runnable*/
/*No:CECIL_TARGET.isa_dca_inline_argument*/
/*No:CECIL_TARGET.compile_to_c_old*/
/*No:CECIL_TARGET.is_pre_computable*/
/*No:CECIL_TARGET.collect_c_tmp*/
/*No:CECIL_TARGET.fz_iinaiv*/
T0* r366result_type(T366* C){
T0* R=NULL;
R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*4*/))->_current_type/*4*/);
return R;
}
void r366error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:CECIL_TARGET.run_feature*/
/*No:CECIL_TARGET.make*/
/*No:CECIL_TARGET.is_current*/
/*No:CECIL_TARGET.mapping_c_arg*/
/*No:CECIL_TARGET.is_void*/
/*No:CECIL_TARGET.afd_check*/
/*No:CECIL_TARGET.is_result*/
/*No:STD_ERROR.put_new_line*/
/*No:STD_ERROR.flush*/
void r35put_string(T35* C,T0* a1){
T2 _i=0;
_i=1;
while (!((_i)>((((T7*)a1))->_count/*4*/))) {
/*[IRF3.6put_character*/{T35* C1=C;
T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
putc(b1,((FILE*)(stderr)));
}/*]*/
_i=(_i)+(1);
}
}
/*No:STD_ERROR.make*/
/*No:STD_ERROR.put_character*/
void r35put_integer(T35* C,T2 a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC30tmp_string))))->_count)=(0);
/*]*/
r2append_in(a1,oBC30tmp_string);
r35put_string(C,oBC30tmp_string);
}
void r295c_mapping_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r295c_mapping_external((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
}
else{
r384default_mapping_function(((T384*)a1));
}
/*FI]*/
}
void r295c_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r43boost((T43*)(oBC12run_control))){
r295c_mapping_external((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
}
else{
r387default_mapping_procedure(((T387*)a1));
}
/*FI]*/
}
/*No:NATIVE_INLINE_WITH_CURRENT.use_current*/
void r295c_mapping_external(T0* a1,T2 a2){
T6 _tcbd=0;
T6 _eruc=0;
_eruc=/*(IRF4.2use_current*/(1)/*)*/;
/*[IF*/
if(!(_eruc)){
_tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X289external_c_name(a1));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(_eruc){
r25put_target_as_value((T25*)(oBC12cpp));
}
/*FI]*/
/*[IF*/
if((a2)>(0)){
/*[IF*/
if(_eruc){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25put_arguments((T25*)(oBC12cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if((!(_eruc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:NATIVE_INLINE_WITH_CURRENT.need_prototype*/
/*No:NATIVE_INLINE_WITH_CURRENT.body*/
/*No:NATIVE_INLINE_WITH_CURRENT.fz_00*/
void r295wrapped_external_call(T0* a1,T2 a2){
T2 _i=0;
r7append((T7*)(((T0*)ms288_3077376)),X289external_c_name(a1));
r7extend((T7*)(((T0*)ms288_3077376)),'\50');
/*[IF*/
{/*AT*/r7extend((T7*)(((T0*)ms288_3077376)),'C');
/*[IF*/
if((a2)>(0)){
r7extend((T7*)(((T0*)ms288_3077376)),'\54');
}
/*FI]*/
}
/*FI]*/
_i=1;
while (!((_i)>(a2))) {
r7extend((T7*)(((T0*)ms288_3077376)),'a');
r2append_in(_i,((T0*)ms288_3077376));
_i=(_i)+(1);
/*[IF*/
if((_i)<=(a2)){
r7extend((T7*)(((T0*)ms288_3077376)),'\54');
}
/*FI]*/
}
r7append((T7*)(((T0*)ms288_3077376)),((T0*)ms13_348));
}
/*No:NATIVE_INLINE_WITH_CURRENT.stupid_switch*/
/*No:NATIVE_INLINE_WITH_CURRENT.fz_14*/
void r295c_define_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms288_3077376)),'R');
r7extend((T7*)(((T0*)ms288_3077376)),'\75');
r295wrapped_external_call((((T384*)a1))->_base_feature/*36*/,r384arg_count(((T384*)a1)));
r384c_define_with_body(((T384*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}
void r295c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms288_3077376)))))->_count)=(0);
/*]*/
r295wrapped_external_call((((T387*)a1))->_base_feature/*32*/,r387arg_count(((T387*)a1)));
r387c_define_with_body(((T387*)a1),((T0*)ms288_3077376));
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.static_value*/
/*No:CALL_INFIX_INT_DIV.call_proc_call_c2c*/
/*No:CALL_INFIX_INT_DIV.feature_name*/
void r135finalize(T135* C){
T0* _rf=NULL;
T0* _rc=NULL;
_rf=(C)->_run_feature/*16*/;
_rc=X54run_class(/*X51current_type*/((T0*)(((T324*)_rf))->_current_type/*4*/));
C->_run_feature=r24dynamic((T24*)(r328first((T328*)((((T24*)_rc))->_running/*12*/))),_rf);
}
T6 r135is_static(T135* C){
T6 R=0;
/*[IF*/
if(X54is_integer(r135result_type(C))){
/*[IF*/
if((X56is_static((C)->_target/*4*/))&&(X56is_static(r135arg1(C)))){
R=1;
C->_static_value_mem=(X56static_value((C)->_target/*4*/))/(X56static_value(r135arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.is_manifest_string*/
T0* r135start_position(T135* C){
T0* R=NULL;
R=((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
/*No:CALL_INFIX_INT_DIV.c_simple*/
T0* r135add_comment(T135* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T230*n=malloc(sizeof(*n));
*n=M230;
r230make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r135to_integer(T135* C){
T2 R=0;
r135error(r135start_position(C),((T0*)ms13_45846));
return R;
}
T6 r135use_current(T135* C){
T6 R=0;
/*[IF*/
{/*AT*/R=X149use_current((C)->_arguments/*8*/);
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X56is_current((C)->_target/*4*/)){
R=X51use_current((C)->_run_feature/*16*/);
}
else{
R=X56use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
T0* r135to_runnable(T135* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r135runnable_expression((C)->_target/*4*/,a1);
_a=r135runnable_args((C)->_arguments/*8*/,a1);
_tt=X56result_type(_t);
_at=X56result_type(r135arg1(C));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r135run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r135run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T135*n=malloc(sizeof(*n));
*n=M135;
r135with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r135compile_to_c_old(T135* C){
X56compile_to_c_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.is_pre_computable*/
/*No:CALL_INFIX_INT_DIV.fz_bad_argument*/
void r135collect_c_tmp(T135* C){
/*[IF*/
if(((C)->_run_feature/*16*/)!=((void*)(NULL))){
X51collect_c_tmp((C)->_run_feature/*16*/);
}
/*FI]*/
X56collect_c_tmp((C)->_target/*4*/);
/*[IF*/
if(((C)->_arguments/*8*/)!=((void*)(NULL))){
X149collect_c_tmp((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.fz_iinaiv*/
T0* r135result_type(T135* C){
T0* R=NULL;
T0* _tla=NULL;
R=X51result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X54is_like_current(R)){
R=/*X51current_type*/((T0*)((T324*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 258:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X54run_type(X56result_type(r135arg1(C)));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.static_value_mem*/
/*No:CALL_INFIX_INT_DIV.run_feature*/
T0* r135runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=X149to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X149start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.us_slash_slash*/
/*No:CALL_INFIX_INT_DIV.fz_07*/
/*No:CALL_INFIX_INT_DIV.arg_count*/
void r135with(T135* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r135run_feature_match(C,a5);
}
/*No:CALL_INFIX_INT_DIV.is_result*/
/*No:CALL_INFIX_INT_DIV.fatal_error*/
void r135mapping_c_target(T135* C,T0* a1){
T0* _actual_type=NULL;
T6 _flag=0;
_flag=r25call_invariant_start(a1);
_actual_type=X54run_type(r135result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
X54mapping_cast(a1);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
void r135run_feature_match(T135* C,T0* a1){
r135run_feature_has_result(C);
X149match_with((C)->_arguments/*8*/,(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_INT_DIV.arguments*/
T0* r135runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X56to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X56start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_DIV.can_be_dropped*/
void r135c_declare_for_old(T135* C){
X56c_declare_for_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.implicit_cast*/
/*No:CALL_INFIX_INT_DIV.dca_inline_argument*/
/*No:CALL_INFIX_INT_DIV.compile_to_c*/
/*No:CALL_INFIX_INT_DIV.isa_dca_inline_argument*/
T0* r135arg1(T135* C){
T0* R=NULL;
R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
return R;
}
void r135run_feature_has_result(T135* C){
/*[IF*/
if((X51result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X51start_position((C)->_run_feature/*16*/));
r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms117_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r135run_feature_for(T135* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type(a1));
R=r24get_rf(((T24*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_INT_DIV.target*/
void r135error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r135make(T135* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T138*n=malloc(sizeof(*n));
*n=M138;
r138make(n,r135operator(),a2);
C->_feature_name=(T0*)n;
}
{T149*n=malloc(sizeof(*n));
*n=M149;
/*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_INT_DIV.is_current*/
void r135mapping_c_arg(T135* C,T0* a1){
T0* _actual_type=NULL;
_actual_type=X54run_type(r135result_type(C));
/*[IF*/
if(X54is_reference(_actual_type)){
/*[IF*/
if(X54is_reference(a1)){
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
else{
X54to_expanded(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
else{
/*[IF*/
if(X54is_reference(a1)){
X54to_reference(_actual_type);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IF*/
if(X54need_c_struct(a1)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\46';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
else{
/*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T135* C1=C;
r25put_cpc((T25*)(oBC12cpp),(T0*)C1);
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_INT_DIV.is_void*/
T0* r135operator(void){
T0* R=NULL;
R=((T0*)ms14_194);
return R;
}
void r135afd_check(T135* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X54run_class(X56result_type((C)->_target/*4*/));
_running=(((T24*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X56start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms118_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r24set_at_run_time(((T24*)_rc));
}
else if((r328count(((T328*)_running)))>(1)){
r331update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X56afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/X149afd_check((C)->_arguments/*8*/);
}
/*FI]*/
}
void r384c_define_opening(T384* C){
T0* _t=NULL;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*/if(((C)->_result_type/*44*/)!=((void*)(NULL))){
_t=X54run_type((C)->_result_type/*44*/);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
/*]*/
X54c_type_for_result_in(_t,((T0*)ms51_3077376));
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_543));
X54c_initialize_in(_t,((T0*)ms51_3077376));
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
r7append((T7*)(oBC12c_frame_descriptor_locals),((T0*)ms51_10703));
r204increment((T204*)(oBC12c_frame_descriptor_local_count));
r7append((T7*)(oBC12c_frame_descriptor_format),((T0*)ms14_7404));
X54c_frame_descriptor(_t);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43ensure_check((T43*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r215c_declare_for_old((T215*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IF*/
if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_21762));
/*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
/*]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\135');
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
}
/*FI]*/
r384c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)==(_i))) {
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_8225));
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_i);
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_314));
/*]*/
_c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
while (!((_c)==('\54'))) {
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1=_c;
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/(((T7*)(oBC12c_frame_descriptor_locals))->_storage/*0*/)[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_144));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_14820a));
/*]*/
}
/*FI]*/
/*[IF*/
if(r43ensure_check((T43*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r215compile_to_c_old((T215*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r357compile_to_c((T357*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r384c_define_closing(T384* C){
/*[IF*/
if(r43ensure_check((T43*)(oBC12run_control))){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r215compile_to_c((T215*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r384use_current(C)){
r25current_class_invariant((C)->_current_type/*4*/);
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_19775));
/*]*/
}
/*FI]*/
}
void r384c_assertion_flag(T384* C){
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
/*]*/
r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_30510));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
}
/*No:RUN_FEATURE_8.use_current_state*/
/*No:RUN_FEATURE_8.fz_void*/
/*No:RUN_FEATURE_8.address_of_c_define*/
/*No:RUN_FEATURE_8.ucs_false*/
T6 r384is_static(T384* C){
T6 R=0;
T0* _type_bit=NULL;
T0* _n=NULL;
_n=X83to_string((C)->_name/*16*/);
/*[IF*/
if((((T0*)ms14_34672))==((void*)(_n))){
R=1;
/*[IF*/
if(X54is_expanded((C)->_current_type/*4*/)){
C->_static_value_mem=1;
}
/*FI]*/
}
else if((((T0*)ms14_60434))==((void*)(_n))){
R=1;
/*[IF*/
if(X54is_basic_eiffel_expanded((C)->_current_type/*4*/)){
C->_static_value_mem=1;
}
/*FI]*/
}
else if(((((T0*)ms14_2840a))==((void*)(_n)))&&(X54is_bit((C)->_current_type/*4*/))){
R=1;
_type_bit=(C)->_current_type/*4*/;
if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
case 276: case 277:
break;
default:
_type_bit=NULL;
};C->_static_value_mem=X53nb(_type_bit);
}
/*FI]*/
return R;
}
T0* r384start_position(T384* C){
T0* R=NULL;
R=r291start_position((T291*)((C)->_base_feature/*36*/));
return R;
}
/*No:RUN_FEATURE_8.c_initialize_locals_one_by_one*/
void r384mapping_name(T384* C){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='r';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),r384id(C));
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_key((C)->_name/*16*/));
/*]*/
}
T2 r384integer_value(T384* C,T0* a1){
T2 R=0;
T0* _n=NULL;
_n=X83to_string((C)->_name/*16*/);
/*[IF*/
if((((T0*)ms14_22776))==((void*)(_n))){
R= T2BITS ;
}
else if((((T0*)ms14_29456))==((void*)(_n))){
R= T3BITS ;
}
else{
r21add_position(a1);
r21add_position(r384start_position(C));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_45846);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r384c_closing(T384* C){
r384c_define_closing(C);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
/*]*/
r384c_frame_descriptor(C);
}
T6 r384use_current(T384* C){
T6 R=0;
{int z1=(C)->_use_current_state/*28*/;
if((14==z1)){
R=1;
}
else
if((13==z1)){
}
else
if((15==z1)){
C->_use_current_state=16;
r384compute_use_current(C);
R=r384use_current(C);
}
else {R=1;
}}
return R;
}
T2 r384id(T384* C){
T2 R=0;
R=X54id((C)->_current_type/*4*/);
return R;
}
void r384c_define_with_body(T384* C,T0* a1){
r384define_prototype(C);
r384c_define_opening(C);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),a1);
/*]*/
r384c_define_closing(C);
/*[IF*/
if(((C)->_result_type/*44*/)==((void*)(NULL))){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_276));
/*]*/
}
else{
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_8364));
/*]*/
}
/*FI]*/
r384c_frame_descriptor(C);
}
void r384routine_afd_check(T384* C){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
r357afd_check((T357*)((C)->_require_assertion/*20*/));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
r215afd_check((T215*)((C)->_ensure_assertion/*24*/));
}
/*FI]*/
}
/*No:RUN_FEATURE_8.us_integer_bits*/
void r384std_compute_use_current(T384* C){
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
/*[IF*/
if(r357use_current((T357*)((C)->_require_assertion/*20*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
/*[IF*/
if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
/*[IF*/
if(r215use_current((T215*)((C)->_ensure_assertion/*24*/))){
C->_use_current_state=14;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_use_current_state/*28*/)==(16)){
C->_use_current_state=13;
}
/*FI]*/
}
T0* r384run_class(T384* C){
T0* R=NULL;
R=X54run_class((C)->_current_type/*4*/);
return R;
}
/*No:RUN_FEATURE_8.result_type*/
/*No:RUN_FEATURE_8.base_feature*/
/*No:RUN_FEATURE_8.ensure_assertion*/
/*No:RUN_FEATURE_8.static_value_mem*/
void r384c_opening(T384* C){
r384define_prototype(C);
r384c_define_opening(C);
}
T6 r384is_exported_in(T384* C,T0* a1){
T6 R=0;
R=r101gives_permission_to((T101*)(r384clients(C)),a1);
return R;
}
/*No:RUN_FEATURE_8.fatal_error*/
void r384default_mapping_function(T384* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r43no_check((T43*)(oBC12run_control));
_uc=r384use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r25target_cannot_be_dropped((T25*)(oBC12cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r384mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\50';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_777));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25put_target_as_target((T25*)(oBC12cpp));
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\54';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
r25put_arguments((T25*)(oBC12cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\51';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*FI]*/
}
/*No:RUN_FEATURE_8.arguments*/
/*No:RUN_FEATURE_8.is_once_function*/
/*No:RUN_FEATURE_8.us_se_argc*/
/*No:RUN_FEATURE_8.current_type*/
/*No:RUN_FEATURE_8.clients_memory*/
void r384add_client(T384* C,T0* a1){
T2 _i=0;
/*[IF*/
if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
{T60*n=malloc(sizeof(*n));
*n=M60;
r60with_capacity(n,4);
C->_actuals_clients=(T0*)n;
}
r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
}
else{
_i=r60fast_index_of((T60*)((C)->_actuals_clients/*12*/),a1);
/*[IF*/
if((_i)>(((T60*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
r60add_last((T60*)((C)->_actuals_clients/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
r24add_client((T24*)(r384run_class(C)),a1);
}
/*No:RUN_FEATURE_8.ucs_in_computation*/
/*No:RUN_FEATURE_8.us_signal_number*/
void r384make(T384* C,T0* a1,T0* a2,T0* a3){
C->_current_type=a1;
C->_name=a2;
C->_base_feature=a3;
/*[IRF3.5add_rf*/r325put(((T325*)(((T24*)(r384run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X83to_key(a2));
/*]*/
r22incr_magic_count((T22*)(oBC12small_eiffel));
C->_use_current_state=15;
r22push((T22*)(oBC12small_eiffel),(T0*)C);
r384initialize(C);
r22pop((T22*)(oBC12small_eiffel));
}
/*No:RUN_FEATURE_8.routine_body*/
/*No:RUN_FEATURE_8.ucs_true*/
/*No:RUN_FEATURE_8.name*/
/*No:RUN_FEATURE_8.c_prototype*/
/*No:RUN_FEATURE_8.afd_check*/
T0* r384clients(T384* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
_bc=X54base_class((C)->_current_type/*4*/);
_bfbc=((T291*)((C)->_base_feature/*36*/))->_base_class/*4*/;
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=((T291*)((C)->_base_feature/*36*/))->_clients/*16*/;
}
else{
R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
}
/*FI]*/
C->_clients_memory=R;
}
else{
R=(C)->_clients_memory/*8*/;
}
/*FI]*/
return R;
}
T0* r384type_string(void){
if(fBC12type_string==0){
fBC12type_string=1;
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make(n,NULL);
oBC12type_string=(T0*)n;
}
}
return oBC12type_string;}
void r384c_define(T384* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(C)->_base_feature/*36*/;
_native=(((T291*)_bf))->_native/*40*/;
_bcn=((T64*)(((T63*)((((T291*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
X288c_define_function(_native,(T0*)C,_bcn,X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((((T291*)_bf))->_names/*8*/)),1)/*)*/));
}
void r384once_result_in(T384* C,T0* a1){
r7extend(((T7*)a1),'o');
r291mapping_c_name_in((T291*)((C)->_base_feature/*36*/),a1);
}
/*No:RUN_FEATURE_8.rescue_compound*/
void r384fall_down(T384* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X54run_class((C)->_current_type/*4*/);
_running=(((T24*)_current_rc))->_running/*12*/;
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X54base_class((C)->_current_type/*4*/);
_i=(((T328*)_running))->_lower/*12*/;
while (!((_i)>((((T328*)_running))->_upper/*8*/))) {
_sub_rc=r328item(((T328*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X54base_class((((T24*)_sub_rc))->_current_type/*0*/);
_sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
_rf=r24get_feature(((T24*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*No:RUN_FEATURE_8.actuals_clients*/
/*No:RUN_FEATURE_8.us_result*/
void r384define_prototype(T384* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r43no_check((T43*)(oBC12run_control));
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
/*[IRF3.3reset*/((((T204*)((T204*)(oBC12c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC12c_frame_descriptor_format),'\42');
/*[IRF3.3clear*/((((T7*)((T7*)(oBC12c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r384id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
/*]*/
/*[IF*/
if(((C)->_result_type/*44*/)==((void*)(NULL))){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
}
else{
X54c_type_for_result_in(X54run_type((C)->_result_type/*44*/),((T0*)ms51_3077376));
}
/*FI]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\40');
r7extend((T7*)(((T0*)ms51_3077376)),'r');
r2append_in(_mem_id,((T0*)ms51_3077376));
X83mapping_c_in((C)->_name/*16*/,((T0*)ms51_3077376));
r7extend((T7*)(((T0*)ms51_3077376)),'\50');
/*[IF*/
if(_no_check){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_56460));
/*[IF*/
if((r384use_current(C))||(((C)->_arguments/*40*/)!=((void*)(NULL)))){
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r384use_current(C)){
X54c_type_for_target_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
r7extend((T7*)(((T0*)ms51_3077376)),'\40');
r7extend((T7*)(((T0*)ms51_3077376)),'C');
X54c_frame_descriptor((C)->_current_type/*4*/);
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*40*/)==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
else if(!(r384use_current(C))){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
}
/*FI]*/
}
else{
r187compile_to_c_in((T187*)((C)->_arguments/*40*/),((T0*)ms51_3077376));
}
/*FI]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\51');
r25put_c_heading((T25*)(oBC12cpp),((T0*)ms51_3077376));
/*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
/*]*/
}
void r384put_tag(T384* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\42';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
_fn=/*(IRF4.6first_name*/r85item(((T85*)(((T291*)((C)->_base_feature/*36*/))->_names/*8*/)),1)/*)*/;
X83put_cpp_tag(_fn);
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X83to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_1148));
/*]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T64*)(/*(IRF4.6base_class_name*/(((T63*)(((T291*)((C)->_base_feature/*36*/))->_base_class/*4*/)))->_name/*24*//*)*/))->_to_string/*0*/);
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\42';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
}
/*No:RUN_FEATURE_8.us_twin*/
/*No:RUN_FEATURE_8.c_code*/
/*No:RUN_FEATURE_8.fz_00*/
void r384c_initialize_ds_one_by_one(T384* C){
r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_37325));
r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_144));
/*[IF*/
if(r384use_current(C)){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_18550));
}
else{
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_11254));
}
/*FI]*/
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
r25put_position_in_ds(r384start_position(C));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_11736));
/*]*/
/*[IF*/
if((((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)>(0)){
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_12150));
/*]*/
}
/*FI]*/
}
/*No:RUN_FEATURE_8.ucs_not_computed*/
/*No:RUN_FEATURE_8.is_pre_computable*/
/*No:RUN_FEATURE_8.fz_12*/
/*No:RUN_FEATURE_8.fz_iinaiv*/
/*No:RUN_FEATURE_8.collect_c_tmp*/
void r384c_frame_descriptor(T384* C){
/*[IF*/
if(r43no_check((T43*)(oBC12run_control))){
r7copy((T7*)(((T0*)ms51_3077376)),((T0*)ms51_23640));
r384c_frame_descriptor_name_in(C,((T0*)ms51_3077376));
r25put_extern7((T25*)(oBC12cpp),((T0*)ms51_3077376));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
T3 b1='\173';
putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
}/*]*/
/*]*/
r384put_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
/*[IF*/
if(r384use_current(C)){
r7extend((T7*)(((T0*)ms51_3077376)),'1');
}
else{
r7extend((T7*)(((T0*)ms51_3077376)),'0');
}
/*FI]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
/*[IRF3.5append_in*/r2append_in(((T2)(((T204*)(oBC12c_frame_descriptor_local_count))->_value/*0*/)),((T0*)ms51_3077376));
/*]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
r7append((T7*)(((T0*)ms51_3077376)),oBC12c_frame_descriptor_format);
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_2316));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
}
/*FI]*/
}
/*No:RUN_FEATURE_8.fz_15*/
/*No:RUN_FEATURE_8.us_character_bits*/
T2 r384arg_count(T384* C){
T2 R=0;
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
R=/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*40*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
}
/*FI]*/
return R;
}
/*No:RUN_FEATURE_8.address_of_c_mapping*/
/*No:RUN_FEATURE_8.us_is_expanded_type*/
void r384mapping_c(T384* C){
T0* _bcn=NULL;
T0* _native=NULL;
T0* _bf=NULL;
_bf=(C)->_base_feature/*36*/;
_native=(((T291*)_bf))->_native/*40*/;
_bcn=((T64*)(((T63*)((((T291*)_bf))->_base_class/*4*/))->_name/*24*/))->_to_string/*0*/;
X288c_mapping_function(_native,(T0*)C,_bcn,X83to_string(/*(IRF4.6first_name*/r85item(((T85*)((((T291*)_bf))->_names/*8*/)),1)/*)*/));
}
void r384initialize(T384* C){
T0* _type_bit_ref=NULL;
T0* _rf=NULL;
T0* _n=NULL;
_n=X83to_string(/*(IRF4.6first_name*/r85item(((T85*)(((T291*)((C)->_base_feature/*36*/))->_names/*8*/)),1)/*)*/);
C->_arguments=((T291*)((C)->_base_feature/*36*/))->_arguments/*20*/;
/*[IF*/
if((((T0*)ms14_2695))==((void*)(_n))){
_type_bit_ref=(C)->_current_type/*4*/;
if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
case 373:
break;
default:
_type_bit_ref=NULL;
};C->_result_type=(((T373*)_type_bit_ref))->_type_bit/*4*/;
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
/*[IF*/
if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
else{
C->_result_type=((T291*)((C)->_base_feature/*36*/))->_result_type/*48*/;
/*[IF*/
if(((C)->_arguments/*40*/)==((void*)(NULL))){
C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
}
else if(X54is_like_argument((C)->_result_type/*44*/)){
/*[IF*/
if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
}
else{
C->_result_type=X54to_runnable((C)->_result_type/*44*/,(C)->_current_type/*4*/);
/*[IF*/
if(!(r187is_runnable((T187*)((C)->_arguments/*40*/),(C)->_current_type/*4*/))){
{T187*n=malloc(sizeof(*n));
*n=M187;
r187with(n,(C)->_arguments/*40*/,(C)->_current_type/*4*/);
C->_arguments=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r43require_check((T43*)(oBC12run_control))){
C->_require_assertion=r291run_require((T0*)C);
}
/*FI]*/
/*[IF*/
if(r43ensure_check((T43*)(oBC12run_control))){
C->_ensure_assertion=r291run_ensure((T0*)C);
}
/*FI]*/
/*[IF*/
if((((T0*)ms14_1840))==((void*)(_n))){
_rf=r24get_copy((T24*)(r384run_class(C)));
}
else if((((T0*)ms14_8610))==((void*)(_n))){
((/*UT*/(void)((T272*)(r384type_string()))),r272set_at_run_time());
}
else if((((T0*)ms14_30885))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T43*)((T43*)(oBC12run_control))))->_generator_used)=(1);
/*]*/
/*[IRF3.3set_generating_type_used*/((((T43*)((T43*)(oBC12run_control))))->_generating_type_used)=(1);
/*]*/
}
else if((((T0*)ms14_14130))==((void*)(_n))){
/*[IRF3.3set_generator_used*/((((T43*)((T43*)(oBC12run_control))))->_generator_used)=(1);
/*]*/
}
else if((((T0*)ms14_13842))==((void*)(_n))){
/*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
}
else if((((T0*)ms14_26351))==((void*)(_n))){
/*[IRF3.3set_used*/((((T363*)((T363*)(oBC12exceptions_handler))))->_used)=(1);
/*]*/
}
/*FI]*/
}
/*No:RUN_FEATURE_8.can_be_dropped*/
void r384external_prototype(T384* C,T0* a1){
T0* _t=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms51_3077376)))))->_count)=(0);
/*]*/
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_12060));
_t=(C)->_result_type/*44*/;
/*[IF*/
if((_t)==((void*)(NULL))){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
}
else{
X54c_type_for_external_in(_t,((T0*)ms51_3077376));
}
/*FI]*/
r7extend((T7*)(((T0*)ms51_3077376)),'\40');
r7append((T7*)(((T0*)ms51_3077376)),X289external_c_name(a1));
r7extend((T7*)(((T0*)ms51_3077376)),'\50');
/*[IF*/
if(X289use_current(a1)){
X54c_type_for_external_in((C)->_current_type/*4*/,((T0*)ms51_3077376));
r7extend((T7*)(((T0*)ms51_3077376)),'\40');
r7extend((T7*)(((T0*)ms51_3077376)),'C');
/*[IF*/
if(((C)->_arguments/*40*/)!=((void*)(NULL))){
r7extend((T7*)(((T0*)ms51_3077376)),'\54');
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*40*/)==((void*)(NULL))){
/*[IF*/
if(!(X289use_current(a1))){
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms13_1776a));
}
/*FI]*/
}
else{
r187external_prototype_in((T187*)((C)->_arguments/*40*/),((T0*)ms51_3077376));
}
/*FI]*/
r7append((T7*)(((T0*)ms51_3077376)),((T0*)ms51_348));
r25swap_on_h((T25*)(oBC12cpp));
/*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms51_3077376));
/*]*/
/*[IRF3.3swap_on_c*/((((T25*)((T25*)(oBC12cpp))))->_current_out)=(oBC25out_c);
/*]*/
}
/*No:RUN_FEATURE_8.require_assertion*/
/*No:RUN_FEATURE_8.us_generator*/
/*No:RUN_FEATURE_8.us_generating_type*/
/*No:RUN_FEATURE_8.us_count*/
/*No:RUN_FEATURE_8.us_exception*/
void r384compute_use_current(T384* C){
/*[IF*/
if(r291use_current((T291*)((C)->_base_feature/*36*/))){
C->_use_current_state=14;
}
else{
r384std_compute_use_current(C);
}
/*FI]*/
}
/*No:RUN_FEATURE_8.local_vars*/
/*No:RUN_FEATURE_8.us_bitn*/
/*No:RUN_FEATURE_8.us_is_basic_expanded_type*/
void r384c_frame_descriptor_name_in(T384* C,T0* a1){
r7extend(((T7*)a1),'f');
r2append_in(r384id(C),a1);
X83mapping_c_in((C)->_name/*16*/,a1);
}
void r344add_procedure(T0* a1){
r390add_last((T390*)(oBC344procedure_list),a1);
}
T0*oBC344procedure_list=NULL;
void r344gc_mark_in(T0* a1){
T0* _entity=NULL;
T0* _rt=NULL;
T0* _mem=NULL;
T0* _of=NULL;
T0* _rf6=NULL;
T2 _i=0;
/*[IF*/
if((/*(IRF4.6count*/(((T49*)(oBC344function_list))->_upper/*12*/)+(1)/*)*/)>(0)){
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,32);
_entity=(T0*)n;
}
_i=((T49*)(oBC344function_list))->_upper/*12*/;
{T345*n=malloc(sizeof(*n));
*n=M345;
r345with_capacity(n,(_i)/(2));
_mem=(T0*)n;
}
while (!((_i)<(0))) {
_rf6=/*(IRF4.6item*/(((T49*)(oBC344function_list))->_storage/*4*/)[_i]/*)*/;
_of=(((T50*)_rf6))->_base_feature/*32*/;
/*[IF*/
if(!(r345fast_has(((T345*)_mem),_of))){
/*[IF*/
if(((T24*)(X54run_class((((T50*)_rf6))->_current_type/*4*/)))->_at_run_time/*8*/){
r345add_last(((T345*)_mem),_of);
_rt=(((T50*)_rf6))->_result_type/*40*/;
/*[IF*/
if(X54need_gc_mark_function(_rt)){
/*[IRF3.3clear*/((((T7*)(((T7*)_entity))))->_count)=(0);
/*]*/
r50once_result_in(((T50*)_rf6),_entity);
r330mark_for(a1,_entity,X54run_class(_rt));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)-(1);
}
}
/*FI]*/
}
void r344add_function(T0* a1){
r49add_last((T49*)(oBC344function_list),a1);
}
T0*oBC344function_list=NULL;
void r255anchor_cycle_start(T255* C){
T2 _i=0;
/*[IF*/
if((((T69*)(oBC256visited))->_upper/*8*/)<(0)){
r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
}
else if(r69fast_has((T69*)(oBC256visited),(C)->_start_position/*4*/)){
_i=0;
while (!((_i)>(((T69*)(oBC256visited))->_upper/*8*/))) {
r21add_position(/*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[_i]/*)*/);
_i=(_i)+(1);
}
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_47439);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
else{
r69add_last((T69*)(oBC256visited),(C)->_start_position/*4*/);
}
/*FI]*/
}
void r255anchor_cycle_end(T255* C){
/*[IF*/
if(((C)->_start_position/*4*/)==((void*)(/*(IRF4.5first*//*(IRF4.6item*/(((T69*)(oBC256visited))->_storage/*0*/)[0]/*)*//*)*/))){
/*[IRF3.3clear*/((((T69*)((T69*)(oBC256visited))))->_upper)=(-(1));
/*]*/
}
/*FI]*/
}
/*No:TYPE_LIKE_FEATURE.fz_void*/
/*No:TYPE_LIKE_FEATURE.start_position*/
void r255used_as_reference(T255* C){
X54used_as_reference((C)->_run_type/*16*/);
}
T2 r255id(T255* C){
T2 R=0;
R=((T24*)(r255run_class(C)))->_id/*4*/;
return R;
}
T6 r255is_user_expanded(T255* C){
T6 R=0;
R=X54is_user_expanded((C)->_run_type/*16*/);
return R;
}
T6 r255is_pointer(T255* C){
T6 R=0;
R=X54is_pointer((C)->_run_type/*16*/);
return R;
}
T0* r255to_runnable(T255* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _rc=NULL;
r255anchor_cycle_start(C);
_rc=X54run_class(a1);
_rt=r24get_result_type(((T24*)_rc),(C)->_like_what/*8*/);
/*[IF*/
if(((C)->_run_type/*16*/)==((void*)(NULL))){
C->_run_type=_rt;
R=(T0*)C;
}
else if(((C)->_run_type/*16*/)==((void*)(_rt))){
R=(T0*)C;
}
else{
{T255*n=malloc(sizeof(*n));
*n=M255;
r255with(n,(T0*)C,_rt);
R=(T0*)n;
}
}
/*FI]*/
r255anchor_cycle_end(C);
return R;
}
void r255c_initialize_in(T255* C,T0* a1){
X54c_initialize_in((C)->_run_type/*16*/,a1);
}
void r255gc_define1(T255* C){
X54gc_define1((C)->_run_type/*16*/);
}
void r255to_reference(T255* C){
X54to_reference((C)->_run_type/*16*/);
}
void r255gc_mark_in(T255* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_8869));
r2append_in(r255id(C),a1);
}
T0* r255run_class(T255* C){
T0* R=NULL;
R=r22run_class((C)->_run_type/*16*/);
return R;
}
void r255c_header_pass2(T255* C){
X54c_header_pass2((C)->_run_type/*16*/);
}
void r255c_header_pass4(T255* C){
X54c_header_pass4((C)->_run_type/*16*/);
}
/*No:TYPE_LIKE_FEATURE.is_like_current*/
T6 r255is_bit(T255* C){
T6 R=0;
R=X54is_bit((C)->_run_type/*16*/);
return R;
}
T0*oBC256visited=NULL;
T0* r255smallest_ancestor(T255* C,T0* a1){
T0* R=NULL;
R=X54smallest_ancestor((C)->_run_type/*16*/,a1);
return R;
}
/*No:TYPE_LIKE_FEATURE.fatal_error*/
T0* r255run_time_mark(T255* C){
T0* R=NULL;
/*[IF*/
if(((C)->_run_type/*16*/)!=((void*)(NULL))){
R=X54run_time_mark((C)->_run_type/*16*/);
}
/*FI]*/
return R;
}
T6 r255is_expanded(T255* C){
T6 R=0;
R=X54is_expanded((C)->_run_type/*16*/);
return R;
}
void r255gc_info_in(T255* C,T0* a1){
X54gc_info_in((C)->_run_type/*16*/,a1);
}
void r255gc_define2(T255* C){
X54gc_define2((C)->_run_type/*16*/);
}
/*No:TYPE_LIKE_FEATURE.is_like_feature*/
/*No:TYPE_LIKE_FEATURE.fz_dot*/
T6 r255is_a(T255* C,T0* a1){
T6 R=0;
T0* _tlf=NULL;
/*[IF*/
if(X54is_like_feature(a1)){
_tlf=a1;
if(NULL!=(_tlf))switch(((T0*)_tlf)->id) {
case 255:
break;
default:
_tlf=NULL;
};/*[IF*/
if((X83to_string((C)->_like_what/*8*/))==((void*)(X83to_string((((T255*)_tlf))->_like_what/*8*/)))){
R=1;
}
else{
R=X54is_a((C)->_run_type/*16*/,a1);
}
/*FI]*/
}
else{
R=X54is_a((C)->_run_type/*16*/,a1);
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_position((C)->_start_position/*4*/);
}
/*FI]*/
return R;
}
/*No:TYPE_LIKE_FEATURE.written_mark*/
void r255c_initialize(T255* C){
X54c_initialize((C)->_run_type/*16*/);
}
T6 r255is_character(T255* C){
T6 R=0;
R=X54is_character((C)->_run_type/*16*/);
return R;
}
void r255make(T255* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_like_what=a2;
r7copy((T7*)(((T0*)ms256_87371)),((T0*)ms13_1724));
r7extend((T7*)(((T0*)ms256_87371)),'\40');
X83declaration_in((C)->_like_what/*8*/,((T0*)ms256_87371));
C->_written_mark=r84item(((T0*)ms256_87371));
}
void r255demangling_in(T255* C,T0* a1){
/*[IF*/
if(r255is_reference(C)){
r7extend(((T7*)a1),'R');
}
else{
r7extend(((T7*)a1),'E');
}
/*FI]*/
r7extend(((T7*)a1),'\40');
r7append(((T7*)a1),r255run_time_mark(C));
}
void r255fatal_error_generic_list(T255* C){
r21add_type((T0*)C,((T0*)ms54_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
T6 r255is_array(T255* C){
T6 R=0;
R=X54is_array((C)->_run_type/*16*/);
return R;
}
T6 r255is_dummy_expanded(T255* C){
T6 R=0;
R=X54is_dummy_expanded((C)->_run_type/*16*/);
return R;
}
T2 r255space_for_variable(T255* C){
T2 R=0;
R=X54space_for_variable((C)->_run_type/*16*/);
return R;
}
void r255to_expanded(T255* C){
X54to_expanded((C)->_run_type/*16*/);
}
T0* r255generic_list(T255* C){
T0* R=NULL;
/*[IF*/
if(r255is_generic(C)){
R=X54generic_list((C)->_run_type/*16*/);
}
else{
r255fatal_error_generic_list(C);
}
/*FI]*/
return R;
}
T0* r255base_class(T255* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=r255base_class_name(C);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r64base_class(((T64*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms54_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
void r255cast_to_ref(T255* C){
X54cast_to_ref((C)->_run_type/*16*/);
}
T0* r255base_class_name(T255* C){
T0* R=NULL;
R=X54base_class_name((C)->_run_type/*16*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.is_formal_generic*/
T6 r255is_a_in(T255* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if(((C)->_written_mark/*12*/)==((void*)(X54written_mark(a1)))){
R=1;
}
else{
_ct=(((T24*)a2))->_current_type/*0*/;
_t1=r255to_runnable(C,_ct);
_t2=X54to_runnable(a1,_ct);
/*[IF*/
if((X54run_time_mark(_t1))==((void*)(X54run_time_mark(_t2)))){
R=1;
}
else{
R=X54is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r255look_up_for(T255* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r255base_class(C)),a1,a2);
return R;
}
void r255c_type_for_external_in(T255* C,T0* a1){
/*[IF*/
if(r255is_reference(C)){
r7append(((T7*)a1),((T0*)ms13_1776a));
r7extend(((T7*)a1),'\52');
}
else{
r255c_type_for_result_in(C,a1);
}
/*FI]*/
}
void r255c_type_for_argument_in(T255* C,T0* a1){
X54c_type_for_argument_in((C)->_run_type/*16*/,a1);
}
void r255c_header_pass1(T255* C){
X54c_header_pass1((C)->_run_type/*16*/);
}
/*No:TYPE_LIKE_FEATURE.run_type*/
void r255c_type_for_target_in(T255* C,T0* a1){
X54c_type_for_target_in((C)->_run_type/*16*/,a1);
}
void r255c_type_for_result_in(T255* C,T0* a1){
X54c_type_for_result_in((C)->_run_type/*16*/,a1);
}
T0* r255expanded_initializer(T255* C){
T0* R=NULL;
R=X54expanded_initializer((C)->_run_type/*16*/);
return R;
}
/*No:TYPE_LIKE_FEATURE.fz_cad*/
void r255c_frame_descriptor(T255* C){
r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
/*[IF*/
if(r255is_reference(C)){
r7extend((T7*)(oBC12c_frame_descriptor_format),'R');
}
else{
r7extend((T7*)(oBC12c_frame_descriptor_format),'E');
}
/*FI]*/
r2append_in(r255id(C),oBC12c_frame_descriptor_format);
r7extend((T7*)(oBC12c_frame_descriptor_format),'\45');
}
T6 r255has_creation(T255* C,T0* a1){
T6 R=0;
R=X54has_creation((C)->_run_type/*16*/,a1);
return R;
}
void r255c_header_pass3(T255* C){
X54c_header_pass3((C)->_run_type/*16*/);
}
void r255gc_call_new_in(T255* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_1008));
r2append_in(r255id(C),a1);
r7extend(((T7*)a1),'\50');
r7extend(((T7*)a1),'\51');
}
/*No:TYPE_LIKE_FEATURE.fz_new*/